#ifndef VKB_ZONES_H
#define VKB_ZONES_H

#include "base/keyboard.h"

enum VKB_ZoneList {

	ZONE_PLAY,
	ZONE_STOP,
	ZONE_PLAY_PATTERN,
	ZONE_PLAY_CURSOR,
	ZONE_FF,
	ZONE_RW,
	ZONE_OCTAVE_UP,
	ZONE_OCTAVE_DOWN,
	ZONE_1,
	ZONE_2,
	ZONE_3,
	ZONE_4,
	ZONE_5,
	ZONE_6,
	ZONE_7,
	ZONE_8,
	ZONE_9,
	ZONE_0,
	ZONE_BACKSPACE,
	ZONE_Q,
	ZONE_W,
	ZONE_E,
	ZONE_R,
	ZONE_T,
	ZONE_Y,
	ZONE_U,
	ZONE_I,
	ZONE_O,
	ZONE_P,
	ZONE_CUT,
	ZONE_OFF,
	ZONE_A,
	ZONE_S,
	ZONE_D,
	ZONE_F,
	ZONE_G,
	ZONE_H,
	ZONE_J,
	ZONE_K,
	ZONE_L,
	ZONE_RETURN,
	ZONE_SHIFT,
	ZONE_Z,
	ZONE_X,
	ZONE_C,
	ZONE_V,
	ZONE_B,
	ZONE_N,
	ZONE_M,
	ZONE_MASK,
	ZONE_CLEAR,
	ZONE_INS,
	ZONE_CTRL,
	ZONE_ALT,
	ZONE_SPACE,
	ZONE_HOME,
	ZONE_PGUP,
	ZONE_PGDN,
	ZONE_DELETE,
	ZONE_MAX
};


static const unsigned char vkb_zone_rects[ZONE_MAX][4] = {

	{14,4,41,42},//     ZONE_PLAY,
	{53,4,41,42},   //     ZONE_STOP,
	{94,4,41,42},   //     ZONE_PLAY_PATTERN,
	{134,4,41,42},   //     ZONE_PLAY_CURSOR,
	{173,4,41,21},   //     ZONE_FF,
	{173,24,41,21},   //     ZONE_RW,
	{214,4,31,9},   //     ZONE_OCTAVE_UP,
	{214,37,31,9},   //     ZONE_OCTAVE_DOWN,
	{14,86,20,20},   //     ZONE_1,
	{34,86,20,20},   //     ZONE_2,
	{54,86,20,20},   //     ZONE_3,
	{74,86,20,20},   //     ZONE_4,
	{94,86,20,20},   //     ZONE_5,
	{114,86,20,20},   //     ZONE_6,
	{134,86,20,20},   //     ZONE_7,
	{154,86,20,20},   //     ZONE_8,
	{174,86,20,20},   //     ZONE_9,
	{194,86,20,20},   //     ZONE_0,
	{214,86,30,20},   //     ZONE_BACKSPACE,
	{24,106,20,20},   //     ZONE_Q,
	{44,106,20,20},   //     ZONE_W,
	{64,106,20,20},   //     ZONE_E,
	{84,106,20,20},   //     ZONE_R,
	{104,106,20,20},   //     ZONE_T,
	{124,106,20,20},   //     ZONE_Y,
	{144,106,20,20},   //     ZONE_U,
	{164,106,20,20},   //     ZONE_I,
	{184,106,20,20},   //     ZONE_O,
	{204,106,20,20},   //     ZONE_P,
	{14,126,20,10},   //     ZONE_CUT,
	{14,136,20,10},   //     ZONE_OFF,
	{34,126,20,20},   //     ZONE_A,
	{54,126,20,20},   //     ZONE_S,
	{74,126,20,20},   //     ZONE_D,
	{94,126,20,20},   //     ZONE_F,
	{114,126,20,20},   //     ZONE_G,
	{134,126,20,20},   //     ZONE_H,
	{154,126,20,20},   //     ZONE_J,
	{174,126,20,20},   //     ZONE_K,
	{194,126,20,20},   //     ZONE_L,
	{214,126,30,20},   //     ZONE_RETURN,
	{14,146,30,20},   //     ZONE_SHIFT,
	{44,146,20,20},   //     ZONE_Z,
	{64,146,20,20},   //     ZONE_X,
	{84,146,20,20},   //     ZONE_C,
	{104,146,20,20},   //     ZONE_V,
	{124,146,20,20},   //     ZONE_B,
	{144,146,20,20},   //     ZONE_N,
	{164,146,20,20},   //     ZONE_M,
	{184,146,20,20},   //     ZONE_MASK,
	{204,146,20,20},   //     ZONE_CLEAR,
	{224,146,20,20},   //     ZONE_INS,
	{14,166,30,20},   //     ZONE_CTRL,
	{44,166,40,20},   //     ZONE_ALT,
	{84,166,80,20},   //     ZONE_SPACE,
	{164,166,20,20},   //     ZONE_HOME,
	{184,166,20,20},   //     ZONE_PGUP,
	{204,166,20,20},   //     ZONE_PGDN,
	{224,166,20,20}   //     ZONE_DELETE,

};

static const unsigned short vkb_zone_keys[ZONE_MAX][2] = {

	{PiGui::KEY_F5,0},    //     ZONE_PLAY,
	{PiGui::KEY_F8,0},    //     ZONE_STOP,
	{PiGui::KEY_F6,0},    //     ZONE_PLAY_PATTERN,
	{PiGui::KEY_F7,0},    //     ZONE_PLAY_CURSOR,
	{0,0},    //     ZONE_FF,
	{0,0},    //     ZONE_RW,
	{PiGui::KEY_KP_DIVIDE,'/'},    //     ZONE_OCTAVE_UP,
	{PiGui::KEY_KP_MULTIPLY,'*'},    //     ZONE_OCTAVE_DOWN,
	{PiGui::KEY_1,'1'},    //     ZONE_1,
	{PiGui::KEY_2,'2'},    //     ZONE_2,
	{PiGui::KEY_3,'3'},    //     ZONE_3,
	{PiGui::KEY_4,'4'},    //     ZONE_4,
	{PiGui::KEY_5,'5'},    //     ZONE_5,
	{PiGui::KEY_6,'6'},    //     ZONE_6,
	{PiGui::KEY_7,'7'},    //     ZONE_7,
	{PiGui::KEY_8,'8'},    //     ZONE_8,
	{PiGui::KEY_9,'9'},    //     ZONE_9,
	{PiGui::KEY_0,'0'},    //     ZONE_0,
	{PiGui::KEY_BACKSPACE,0},    //     ZONE_BACKSPACE,
	{PiGui::KEY_q,'q'},    //     ZONE_Q,
	{PiGui::KEY_w,'w'},    //     ZONE_W,
	{PiGui::KEY_e,'e'},    //     ZONE_E,
	{PiGui::KEY_r,'r'},    //     ZONE_R,
	{PiGui::KEY_t,'t'},    //     ZONE_T,
	{PiGui::KEY_y,'y'},    //     ZONE_Y,
	{PiGui::KEY_u,'u'},    //     ZONE_U,
	{PiGui::KEY_i,'i'},    //     ZONE_I,
	{PiGui::KEY_o,'o'},    //     ZONE_O,
	{PiGui::KEY_p,'p'},    //     ZONE_P,
	{PiGui::KEY_PLUS,'`'},    //     ZONE_CUT,
	{PiGui::KEY_1,'1'},    //     ZONE_OFF,
	{PiGui::KEY_a,'a'},    //     ZONE_A,
	{PiGui::KEY_s,'s'},    //     ZONE_S,
	{PiGui::KEY_d,'d'},    //     ZONE_D,
	{PiGui::KEY_f,'f'},    //     ZONE_F,
	{PiGui::KEY_g,'g'},    //     ZONE_G,
	{PiGui::KEY_h,'h'},    //     ZONE_H,
	{PiGui::KEY_j,'j'},    //     ZONE_J,
	{PiGui::KEY_k,'k'},    //     ZONE_K,
	{PiGui::KEY_l,'l'},    //     ZONE_L,
	{PiGui::KEY_RETURN,'\n'},    //     ZONE_RETURN,
	{PiGui::KEY_LSHIFT,0},    //     ZONE_SHIFT,
	{PiGui::KEY_z,'z'},    //     ZONE_Z,
	{PiGui::KEY_x,'x'},    //     ZONE_X,
	{PiGui::KEY_c,'c'},    //     ZONE_C,
	{PiGui::KEY_v,'v'},    //     ZONE_V,
	{PiGui::KEY_b,'b'},    //     ZONE_B,
	{PiGui::KEY_n,'n'},    //     ZONE_N,
	{PiGui::KEY_m,'m'},    //     ZONE_M,
	{PiGui::KEY_COMMA,','},    //     ZONE_MASK,
	{PiGui::KEY_PERIOD,'.'},    //     ZONE_CLEAR,
	{PiGui::KEY_INSERT,0},    //     ZONE_INS,
	{PiGui::KEY_LCTRL,0},    //     ZONE_CTRL,
	{PiGui::KEY_LALT,0},    //     ZONE_ALT,
	{PiGui::KEY_SPACE,' '},    //     ZONE_SPACE,
	{PiGui::KEY_HOME,0},    //     ZONE_HOME,
	{PiGui::KEY_PAGEUP,0},    //     ZONE_PGUP,
	{PiGui::KEY_PAGEDOWN,0},    //     ZONE_PGDN,
	{PiGui::KEY_DELETE,0}    //     ZONE_DELETE,

};

#endif
